package com.qf.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Demo01 {
    public static void main(String[] args) {
        Collection c = new ArrayList(); // 创建一个子类型对象
        Collection c2 = new ArrayList(); // 创建一个子类型对象
        Collection c3 = new ArrayList(); // 创建一个子类型对象
        int size = c.size();
        System.out.println(c);
        System.out.println(size);
        c.add(1);
        c.add("hello");
        System.out.println(c.size());
        System.out.println(c);

        Cat cat = new Cat("加菲猫", 3);
        c.add(cat);

        System.out.println(c);

//        System.out.println(c.contains("hello"));
//        System.out.println(c.contains("world"));
//        System.out.println(c.containsAll(c2));

//        System.out.println(c2.equals(c3));

        // 迭代器 可以遍历集合中的所有元素
        Iterator iterator = c.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
            System.out.println(next);
        }

        // java对于迭代器接口给出的 语法糖
//        for (Object o : c) {
//            System.out.println(o);
//        }

        // remove
//        c.remove("hello");
//        c.removeAll(c);
//        System.out.println(c);

        // 把类型为Cat 的对象删除掉
//        c.removeIf(element -> element instanceof Cat);
//        System.out.println(c);

        // 集合交集
        c2.add("hello");
        c.retainAll(c2);
        System.out.println(c);

        // 集合转数组
//        Object[] array = c.toArray();
//        System.out.println(array.length);
//        for (int i = 0; i < array.length; i++) {
//            System.out.println(array[i]);
//        }

//        Object[] objects = new Object[c.size()];
//        c.toArray(objects);
//        for (int i = 0; i < objects.length; i++) {
//
//            System.out.println(objects[i]);
//        }

//        c.clear();
//        System.out.println(c.isEmpty());


    }
}
